import { createRouter, createWebHistory } from 'vue-router';
import YanyunLoginPage from '../components/YanyunLoginPage.vue';
import HomePage from '../components/HomePage.vue';
import authService from '../services/auth.js';

// 路由规则
const routes = [
  {
    path: '/login',
    name: 'Login',
    component: YanyunLoginPage,
    // 未登录的用户才能访问登录页面
    meta: {
      requiresGuest: true
    }
  },
  {
    path: '/',
    name: 'Home',
    component: HomePage,
    // 需要登录才能访问
    meta: {
      requiresAuth: true
    }
  },
  // 重定向到登录页面
  {
    path: '/:pathMatch(.*)*',
    redirect: '/login'
  }
];

// 创建路由实例
const router = createRouter({
  history: createWebHistory(),
  routes
});

// 路由守卫，检查用户登录状态
router.beforeEach((to, from, next) => {
  // 检查路由是否需要认证
  if (to.matched.some(record => record.meta.requiresAuth)) {
    // 如果用户未登录，重定向到登录页面
    if (!authService.checkAuth()) {
      next({ path: '/login' });
    } else {
      next();
    }
  } 
  // 检查路由是否需要游客访问
  else if (to.matched.some(record => record.meta.requiresGuest)) {
    // 如果用户已登录，重定向到主页
    if (authService.checkAuth()) {
      next({ path: '/' });
    } else {
      next();
    }
  } 
  // 其他情况直接通过
  else {
    next();
  }
});

export default router;